package com.ict.web.domain;

import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * yzq_extract_expert
 *
 * @author ruoyi
 * @date 2022-02-28
 */
@Data
@TableName("yzq_extract_expert")
public class ExtractExpert extends Model<ExtractExpert> implements Serializable {

    private static final long serialVersionUID = 1L;

    /**专家任务状态 1:待接受*/
    public final static String STATUS_NOT_ACCEPT = "1";
    /**专家任务状态 2: 待审批*/
    public final static String STATUS_NOT_APPROVAL = "2";
    /**专家任务状态 3:已拒绝*/
    public final static String STATUS_REJECT = "3";
    /**专家任务状态 4:待开始*/
    public final static String STATUS_NOT_START = "4";
    /**专家任务状态 5:已结束*/
    public final static String STATUS_FINISH = "5";
    /**专家任务状态 6:申请取消*/
    public final static String STATUS_APPLY_CANCEL = "6";
    /**专家任务状态 7:已接受*/
    public final static String STATUS_APPLY_ACCEPT = "7";
    /**专家任务状态 8:已审批*/
    public final static String STATUS_APPLY_APPROVAL = "8";
    /**专家任务状态 9:同意取消*/
    public final static String STATUS_APPLY_APPROVAL_AGREE_CANCEL = "9";

    /**接受状态{0:待接受 }*/
    public final static String RECEIVE_STATUS_TO_BE_ACCEPT = "0";
    /**接受状态{1：已接受}*/
    public final static String RECEIVE_STATUS_ACCEPT = "1";
    /**接受状态{ 2：已拒绝}*/
    public final static String RECEIVE_STATUS_REJECT = "2";
    /**专接受状态{3:申请取消}*/
    public final static String RECEIVE_STATUS_CANCEL = "3";
    /**专接受状态{4:同意取消}*/
    public final static String RECEIVE_STATUS_AGREE_CANCEL = "4";

    /**删除状态（逻辑删除），0：未删除*/
    public final static String DELETE_STATUS_NORMAL = "0";
    /**删除状态（逻辑删除），1：已删除*/
    public final static String DELETE_STATUS_DELETED = "1";


    /**申请取消{0:未申请 }*/
    public final static String APPLY_NOT_CANCEL = "0";
    /**申请取消{1:已申请} */
    public final static String APPLY_CANCEL = "1";

    /**申请审核{1:同意取消 }*/
    public final static String APPROVAL_CANCEL = "1";
    /**申请审核{2:不同意} */
    public final static String APPROVAL_NOT_CANCEL = "2";

    /** 抽取表id */
    @ApiModelProperty(value = "抽取表id")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    @TableId
    private Long extractExpertId;

    /** 专家id */
    @ApiModelProperty(value = "专家id")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long expertId;

    /** 抽取规则id */
    @ApiModelProperty(value = "抽取规则id")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long extractRuleId;

    /** 更换次数 */
    @ApiModelProperty(value = "更换次数，varchar：2")
    private String exchangeNum;

    /** 节点 */
    @ApiModelProperty(value = "节点")
    private String extractNode;

    /** 状态{1:待接受 2: 待审批 3:已拒绝 4:待开始 5:已结束6:申请取消} */
    @ApiModelProperty(value = "状态{1:待接受 2: 待审批 3:已拒绝 4:待开始 5:已结束6:申请取消}")
    private String status;

    /** 删除状态 */
    @ApiModelProperty(value = "删除状态{0：正常 1：删除}")
    private String delFlag;

    /** 接受状态{0:待接受 1：已接受 2：已拒绝3:申请取消} */
    @ApiModelProperty(value = "接受状态{0:待接受 1：已接受 2：已拒绝3:申请取消}")
    private String receiveStatus;

    /** 拒绝任务原因 */
    @ApiModelProperty(value = "拒绝任务原因")
    @TableField(updateStrategy  = FieldStrategy.IGNORED)
    private String refuseReason;

    /** 处理时间 */
    @ApiModelProperty(value = "处理时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @TableField(updateStrategy  = FieldStrategy.IGNORED)
    private LocalDateTime dealTime;

    /** 创建时间 */
    @ApiModelProperty(value = "创建时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private LocalDateTime createTime;

    /** 更新时间 */
    @ApiModelProperty(value = "更新时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private LocalDateTime updateTime;

    /** 职业道德评分 */
    @ApiModelProperty(value = "职业道德评分")
    private String professionalScore;

    /** 工资态度评分 */
    @ApiModelProperty(value = "工资态度评分")
    private String workScore;

    /** 业务水平评分 */
    @ApiModelProperty(value = "业务水平评分")
    private String businessScore;

    /** 总分 */
    @ApiModelProperty(value = "总分")
    private String totalScore;

    /** 评价描述 */
    @ApiModelProperty(value = "评价描述")
    private String appraiseDesc;

    /** 申请取消{0:未申请 1:已申请} */
    @ApiModelProperty(value = "申请取消{0:未申请 1:已申请}")
    private String applyCancel;

    /** 申请理由 */
    @ApiModelProperty(value = "申请理由")
    private String applyReason ;

    /** 申请取消前状态 */
    @ApiModelProperty(value = "申请取消前状态")
    private String applyCancelStatus ;

    /** 重新抽取次数 */
    @ApiModelProperty(value = "重新抽取次数，varchar：1")
    private String againExtractNum;
}
